解决Django项目启动Python Console报错和Run manage.py Task功能无法使用 | 您所在的位置:网站首页 › python 终端运行py 路径报错 › 解决Django项目启动Python Console报错和Run manage.py Task功能无法使用 |
文章目录
直通车起因导致的问题解决办法
直通车
不想看长文的直接看这里,有兴趣的欢迎阅读后面的内容 解决办法: settings.py配置文件不能删,不过可以清空里面的内容,仅保留个空文件,在settings/__init__.py中导入所有开发环境的所有配置,即: from .dev import *说明:此方法仅可用于修改Djanog项目默认的配置文件路径导致错误的情况 起因在Django项目中,项目配置一般都是放在settings.py中,但是这样也带来了新的问题,本地配置,测试服务器的配置和正式服务器的配置不一样,每次更新都要改来改去,特别麻烦,所以一般都会对配置的settings进行改造。最常见的,就是在项目同名目录下,新建一个名为settings的包,然后将各个环境的配置放入这个包下面,结构如下: 项目同名目录 │ asgi.py │ router.py │ settings.py # Django 原本的settings.py │ urls.py │ wsgi.py │ __init__.py │ ├─settings # 新建的包,用于存放各种环境的配置信息 │ │ base.py # 公共的基础配置,例如安装的app,中间件等 │ │ dev.py # 开发环境的配置,比如开启调试,本地数据库,安装调试插件 │ │ prod.py # 生产环境的配置,比如生产数据库,关闭调试模式等 │ │ __init__.py通过上面的修改后,默认的settings就没有必要存在了,而且与新的包重名,一般我们都会选择删除它。同时,由于项目配置路径变了,项目的其他地方也需要做对应的修改,这里就不多阐述了,会修改项目结构的,应该都知道要改些什么地方。 为了照顾不懂的小白,这里还是讲一下吧!!! 修改manage.py文件 def main(): """Run administrative tasks.""" # 这个是原来的配置 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DjangoDBOP.settings') # 下面是修改后的配置,就是指定settings文件位置 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DjangoDBOP.settings.dev') ... if __name__ == '__main__': main()如果是用Pycharm启动项目,需要修改Pycharm里面的项目配置 选右上角运行按钮左边的下拉框,点击,选择Edit Configuration。在弹出的窗口中,找到Configuration, 在Environment variables中,修改DJANGO_SETTINGS_MODULE的值,同样的,设置为使用的配置文件的位置 导致的问题只要正确修改了项目的manage.py里面的配置文件路径,那么通过命令运行项目就没有问题了。 在Pycharm有两个好用的东西对Django项目非常友好,一个是Python Console,一个是Tools里面的Run manage.py Task。在Django项目中,打开Python COnsole系统会加载Django的运行环境进去,我们可以在里面很方便地调用项目的资源进行调试。而运行Run manage.py Task工具后也会打开一个控制台,在这里可以快捷地使用manage.py的命令,而且还有提示信息,非常方便,用过的都知道,我一般模型变更的命令都是在这里面执行的。 如果按照上面的步骤对配置文件进行修改,那么Pycharm提供的这两个工具都用不了了 Python Console还可以用,但是没有Django的环境了,而且启动就有报错,看着就很糟心。 Run manage.py Task直接就打不开了,按钮都是灰色的… 这是因为Pycharm使用项目默认的配置路径去加载配置文件,然后加载Django的运行环境,而我们修改了默认的配置文件,并且删除了settings.py,所以启动就报错了。 解决办法在网上找了半天,没有找到完美的解决办法,都是建议直接在控制台使用python manage.py shell启动Python终端,但是这样也很麻烦啊,而且…这种方式没有语法提示**(Python Console里面可以通过Tab键不全或者提示备选项)。** 控制台的问题勉强算是解决了,但是,另一个manage.py工具怎么办? 想想每次做操作都要输入“前缀”——python manage.py就心有不甘,而且管理命令都老长了,比如:createsuperuser, makemigrations对于初学者而言肯定是不好记,这个时候就会怀念Pycharm那个有提示的工具了。 目前最好的解决办法 通过多次测试,发现只要不删除项目主目录下的settings.py文件就不会报错了。所以解决办法就是保留settings.py,不过,settings.py文件里面的内容可以全部删掉,只需要一个空文件就可以了,然后,需要在新建的settings包里面的__init__.py中导入开发所使用的环境的所有配置项 # settings/__init__.py from .dev import *这样再运行Python Console终端就不会再报错了,而且Run manage.py Task工具也可以正常使用了。 以上就是django项目修改项目配置结构后导致Python Console功能启动报错的解决办法了。 如果大家有更好的解决办法,欢迎分享留言哦~ |
CopyRight 2018-2019 实验室设备网 版权所有 |